Some computer applications require a computer network which supports distributed processing. Some distributed applications, particularly industrial control applications, also may require support for real-time communication and control over the computer network. Some support for data sharing by multiple distributed processes may also be needed. While conventional commercially-available computer network systems can support distributed processing and data sharing, many of these conventional computer network systems do not have mechanisms which guarantee timeliness of communication of data for real-time applications.
Some computer memory systems are available which support distributed data sharing in a computer. For example, a distributed shared memory (DSM) provides an illusion of global virtual memory to all computers using the shared memory. It allows for concurrent write operations on different nodes in the network. Such a DSM system, however, requires coherency protocols, consistency models, and other complexities which may not be needed to support distributed real-time processing. Additionally, there is no time constraint guarantee associated with shared memory.
Another computer memory system that supports data sharing is called reflective memory. Such a memory system reflects, or replicates, data to all nodes of a computer network in a bounded amount of time. These reflective memory systems are based on a ring topology and can support only a limited physical memory size. However, data typically does not need to be distributed to all nodes in a system to support distributed real-time processing, but only a few.
Another computer memory system which provides low latency and high performance communication in clustered parallel computing systems is called memory channels. A memory channel is shared by applications which can directly read and write on the memory channel. A memory channel, however, can support only a limited number of nodes and a limited distance between nodes. However, for real-time communication between many nodes, data updates need specific time bounds and frequency which are not supported by a memory channel architecture.
None of these computer systems provide a flexible and scalable architecture which supports communication with specified time limits, i.e., which supports efficiently real-time communication. Accordingly, a general aim of the present invention is to provide a computer network system which supports distributed real-time processing, by providing data reflection with guaranteed timeliness, but also with flexibility and scalability.